#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <stdio.h>
#include <string.h>

int main()
{
	int fd[2], cld_pid, status; 	// 创建文件标示符数组
	char buf[200], len;				// 创建缓冲区

	if (-1 == pipe(fd)) {			// 创建管道
		perror("创建管道出错");
		exit(2);
	}

	if ((cld_pid = fork()) == 0) {
		sleep(1);
		close(fd[1]);	// 关闭写端口
		len = read(fd[0], buf, sizeof(buf));
		buf[0] = 0;

		printf("子进程从管道中读取的数据是:%s\n", buf);
		exit(0);

	} else {
		close(fd[0]);	// 关闭读端口
		printf("父进程创建数据.\n");
		sprintf(buf, "父进程为子进程创建该数据.");
		write(fd[1], buf, strlen(buf));

		exit(0);
	}

	return 0;
}

